// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "../OracleSQLObjectImpl.h"

class CycleClause : virtual public OracleSQLObjectImpl
{
public:
  SQLExpr_list_ptr aliases;
  SQLExpr_ptr mark;
  SQLExpr_ptr value;
  SQLExpr_ptr defaultValue;
  CycleClause();
  SHAREDOBJECT(CycleClause);
  SQLExpr_ptr getMark();

  void setMark(SQLExpr_ptr mark);

  SQLExpr_ptr getValue();

  void setValue(SQLExpr_ptr value);

  SQLExpr_ptr getDefaultValue();

  void setDefaultValue(SQLExpr_ptr defaultValue);

  SQLExpr_list_ptr getAliases();

  // @Override
  void accept0(OracleASTVisitor_ptr visitor);

  SQLObject_ptr clone();
};
